#include <stdio.h>

// 在数组 a 中，查找 key，返回 key 所在的位置
// 其中 n 表示数组 a 的长度
int find(char* a, int n, char key) {
    if (a == NULL || n <= 0) {
        return -1;
    }

    if (a[n-1] == key) {
        return n-1;
    }

    char tmp = a[n-1];
    a[n-1] = key;

    int i = 0;
    while (a[i] != key) {
        ++i;
    }

    a[n-1] = tmp;

    if (i == n-1) {
        return -1;
    } else {
        return i;
    }
}

int main() {
    // 注意，str 必须是字符串数组 char[]，不能是字符串常量 char*
    // 因为字符串常量无法修改，会导致报错：bus error
    char str[] = "hello world";
    printf("find(\"%s\", 11, 'r') = %d\n", str, find(str, 11, 'r'));
    return 0;
}